package com.neu.credit.creditscore.service.parking;

import com.neu.credit.creditscore.common.utils.Result;
import com.neu.credit.creditscore.dto.req.ParkingPreOrderInfoReq;
import com.neu.credit.creditscore.dto.res.parking.*;
import com.neu.credit.creditscore.entity.parking.ParkingLots;
import com.baomidou.mybatisplus.extension.service.IService;
import com.neu.credit.creditscore.entity.parking.ParkingSpaces;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 停车场信息表 服务类
 * </p>
 *
 * @author baomidou
 * @since 2025-06-14
 */
public interface ParkingLotsService extends IService<ParkingLots> {

    /**
     * 获取默认推荐停车场列表
     * @return
     */
    Result<List<ParkingLotsSimpleInfoRes>> getRecommendParking();

    Result<ParkingLotsTypeRes> getParkingByType(int pageNum, int pageSize, int type, String title);

    Result<List<ParkingSpaces>> getSpaces(int lotId);

    Result<ParkingLots> getParkingLotInfoById(int lotId);

    Result<ParkingPreOrderInfoRes> savePreOrderInfo(ParkingPreOrderInfoReq req  ,Integer userId);

    Result<String> orderParking(int appointmentId,Integer userId);

    Result<String> startUse(int appointmentId);

    Result<List<AppointmentListRes>> getAppointmentList(Integer userId);

    Result<ParkingFeeRes> getFee(int appointId);

    Result<String> leaveParking(int appointId);

    Result<ParkingNeedPayFeeRes> getFeeDetail(int appointId);

    Result<String> payParkingFee(int parkingFeeId,int appointmentId);

    Result<ParkingLotPageRes> getAdminParkingLot(int pageNum, int pageSize, int type, String title);

    Result<String> deletedParkLot(int parkingLotId);

    Result<String> updateParkingLot(ParkingLots parkingLots );
    public Result<String> saveparkingLot(ParkingLots parkingLots );
    Result<String> getScore(Integer userId);

}
